package com.info.zhiduoduo.repository.dto.crowdsource;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.info.zhiduoduo.common.excelconverter.InvoiceTypeConverter;
import com.info.zhiduoduo.common.excelconverter.StateConverter;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 智众包项目
 * </p>
 *
 * @author bob
 * @since 2019-09-25
 */
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@ColumnWidth(20)
public class CrowdsourceCostInvoicefsDto {

	@ApiModelProperty("该条发票数据id 主键")
	@ExcelIgnore
	private Integer id;

	@ApiModelProperty("智众包项目明细id")
	@ExcelIgnore
	private Integer projectItemId;

	@ApiModelProperty("智众包项目id")
	@ExcelIgnore
	private Integer projectid;

	@ApiModelProperty("开票金额")
	@ExcelProperty(value = "项目金额" , index = 11)
	private BigDecimal projectAmount;

	@ExcelIgnore
	@ApiModelProperty("项目类型 2：智众包项目 6：委托接单-智众包项目")
	private Integer projectType;

	@ApiModelProperty("项目名称")
	@ExcelProperty(value = "项目名称" , index = 5)
	private String projectName;

	@ExcelIgnore
	@ApiModelProperty("自然人id")
	private Integer crowdsourceid;

	@ApiModelProperty("自然人名字")
	@ExcelProperty(value = "创客姓名" , index = 2)
	private String realName;

	@ExcelIgnore
	@ApiModelProperty("用户类型 1:众包自然人 2:工作室")
	private int userType;

	@ApiModelProperty("工作室名称")
	@ExcelProperty(value = "工作室名称" , index = 3)
	private String studioName;

	@ExcelIgnore
	@ApiModelProperty("创客开户地 1天津 2共青城")
	private int openingLocation;

	@ApiModelProperty("开票内容")
	@ExcelProperty(value = "开票内容" , index = 8)
	private String invoiceContent;

	@ExcelIgnore
	@ApiModelProperty("购买方id 企业")
	private Integer compid;

	@ExcelIgnore
	@ApiModelProperty("购买方 企业所属众包城市 1 天津  2 共青城 ")
	private Integer crowdsourceCity;

	@ApiModelProperty("购买方名称")
	@ExcelProperty(value = "发单企业" , index = 0)
	private String compname;

	@ExcelIgnore
	@ApiModelProperty("项目总金额")
	private BigDecimal projectTotalAmount;

	@ExcelIgnore
	@ApiModelProperty("项目总服务费")
	private BigDecimal projectTotalServiceCharge;

	@ExcelIgnore
	@ApiModelProperty("含税金额")
	private BigDecimal projectTotalPayableAmount;

	@ApiModelProperty("开票状态(1：待开票，2：开票中，3：已开票，4：已作废)")
	@ExcelProperty(value = "开票状态" , index = 12,converter = StateConverter.class)
	private Integer state;

	@ExcelProperty(value = "合同编号" , index = 6)
	@ApiModelProperty("推送的合同编号")
	private String contractNumber;

	@ExcelProperty(value = "结算编号" , index = 10)
	@ApiModelProperty("推送的结算编号")
	private String platstr;

	@ExcelIgnore
	@ApiModelProperty("推送状态（1：推送发包方信息，2：推送项目信息，3：推送合同信息，4：推送结算，5：完成）")
	private String status;

	@ExcelIgnore
	@ApiModelProperty("失败原因")
	private String failReason;

	@ApiModelProperty("创建时间")
	@ExcelProperty(value = "创建时间" , index = 4)
	private String createtime;

	@ApiModelProperty("给共青城的开票内容")
	@ExcelProperty(value = "共青城的开票内容" , index = 9)
	private String gongQingInvoiceContent;

	@ExcelProperty(value = "发票类型" , index = 7,converter = InvoiceTypeConverter.class)
	@ApiModelProperty("发票类型")
	private Integer invoiceType;

	@ExcelIgnore
	@ApiModelProperty("作废理由")
	private String invalidationReasons;

	@ExcelIgnore
	@ApiModelProperty("是否为临时登陆类型: 0:否 1:是")
	private Integer temporaryLogin;

	@ExcelIgnore
	@ApiModelProperty("支付方式id")
	private Integer payId;

	@ApiModelProperty("项目服务费 单条")
	@ExcelIgnore
	private BigDecimal projectServiceCharge;

	@ApiModelProperty("综合税费 单条")
	@ExcelIgnore
	private BigDecimal integratedTaxFee;

	@ExcelIgnore
	@ApiModelProperty("甲方id")
	private int partyId;

	@ExcelIgnore
	@ApiModelProperty("开票地id")
	private int invoiceCityId;

	@ApiModelProperty("开票地名称")
	@ExcelProperty(value = "开票地" , index = 15)
	private String invoiceCityName;

	@ExcelIgnore
	@ApiModelProperty("是否可以策略性开票 0:否 1:是")
	private int companyStrategyInvoice;

	@ExcelIgnore
	@ApiModelProperty("是否可以策略性开票 0:否 1:是")
	private int strategy;

	@ExcelProperty(value = "策略性开票时间" , index = 13)
	@ApiModelProperty("策略性开票日期")
	private String strategyDate;

	@ExcelProperty(value = "策略性开票备注" , index = 14)
	@ApiModelProperty("策略性开票备注")
	private String strategyRemark;

	@ExcelIgnore
	@ApiModelProperty("是否为合并后的发票（默认0 否   1 是）")
	private int whetherMerge;

	@ExcelIgnore
	@ApiModelProperty("关联的主发票id")
	private int mergeId;

	@ApiModelProperty("运营主体名称")
	@ExcelProperty(value = "运营主体" , index = 1)
	private String subjectName;

	@ExcelIgnore
	@ApiModelProperty("补录时间")
	private Date supplementTime;

	@ExcelIgnore
	@ApiModelProperty("是否是补录：0：不是，1.是")
	private Integer whetherSupplement;

	@ExcelIgnore
	@ApiModelProperty("补录人员ID")
	private Integer supplementPersonnel;

	@ExcelIgnore
	@ApiModelProperty("操作人")
	private String managername;

	@ExcelIgnore
	@ApiModelProperty("税户状态 1：不可开户 2：可以开户 3：已开户")
	private Integer taxAcctState;

	@ExcelIgnore
	@ApiModelProperty("是否未开票提醒 0：否，1:是")
	private int unInvoiceRemind;

	@ExcelIgnore
	@ApiModelProperty("发票凭证路径")
	private String invoicePicture;

	@ApiModelProperty("季度金额")
	@ExcelProperty(value = "季度金额" , index = 16)
	private BigDecimal quarterlyAmount;

}
